<?php

class Application_Model_ReservierungenMapper
{
	protected $_dbTable = null;
    
    public function getDbTable()
    {
        if (!isset($this->_dbTable)) {
            $this->_dbTable = new Application_Model_DbTable_Reservierungen();
        }
        return $this->_dbTable;
    }
    
    /*
    public function getModel(Zend_Db_Table_Row $row)
    {
        $model = new Blog_Model_Category();
        $model->setId($row->category_id);
        $model->setName($row->category_name);
        $model->setUrl($row->category_url);
        
        return $model;
    }
    */
	
     public function anlegen(Application_Model_Reservierung $model){
     	
     	$mysqldatumvon = date('Y-m-d', strtotime($model->getDatumvon()) );
     	$mysqldatumbis = date('Y-m-d', strtotime($model->getDatumbis()) );
     	$daten = array('benutzernr'		=>	$model->getBenutzernr(),
        				'ticketnr'		=>	$model->getTicketnr(),
        				'parkplatznr'	=>	$model->getParkplatznr(),
        				'datumvon' 		=>	$mysqldatumvon,
        				'datumbis'		=>	$mysqldatumbis,
        				'preis'			=>	$model->getPreis()
     			);
     	$this->getDbTable()->insert($daten);
     }
     
     public function  fetchAll(){
     	$resultSet = $this->getDbTable()->fetchAll();
     	$entries = array();
     	foreach ($resultSet as $row) {
     		$entry = new Application_Model_Reservierung();
     		$entry->setNr($row->nr);
     		$entry->setBenutzernr($row->benutzernr);
     		$entry->setParkplatznr($row->parkplatznr);
     		$entry->setTicketnr($row->ticketnr);
     		$entry->setDatumvon($row->datumvon);
     		$entry->setDatumbis($row->datumbis);
     		$entry->setPreis($row->preis);
     		
     		$entries[] = $entry;
     	}
     	return $entries;
     }
     
     public function fetchReservierungen($benutzerid = null){
     	$table = $this->getDbTable();
     	$entries = array();
     	$resultSet = $table->fetchAll($table->select()
     						->where('benutzernr = ?',$benutzerid));
     		foreach ($resultSet as $row) {
     		$entry = new Application_Model_Reservierung();
     		$entry->setNr($row->nr);
     		$entry->setBenutzernr($row->benutzernr);
     		$entry->setParkplatznr($row->parkplatznr);
     		$entry->setTicketnr($row->ticketnr);
     		$entry->setDatumvon($row->datumvon);
     		$entry->setDatumbis($row->datumbis);
     		$entry->setPreis($row->preis);
     		
     		$entries[] = $entry;
     		}
     	return $entries;
     }
     
     public function fetchReservierung($reservierungsNr = null){
     	$table = $this->getDbTable();
     	
     	if (!is_null($reservierungsNr)){
     		$resultSet = $table->fetchAll($table->select()
     							->where('nr = ?',$reservierungsNr));
     		if (sizeof($resultSet)>0){
	     		$row = $resultSet[0];
	     		$entry = new Application_Model_Reservierung();
	     		$entry->setNr($row->nr);
	     		$entry->setBenutzernr($row->benutzernr);
	     		$entry->setParkplatznr($row->parkplatznr);
	     		$entry->setTicketnr($row->ticketnr);
	     		$entry->setDatumvon($row->datumvon);
	     		$entry->setDatumbis($row->datumbis);
	     		$entry->setPreis($row->preis);
	     		return $entry;
     		}
     	}
     	return;
     	
     }
     
     public function stornieren($reservierungsNr = null){
     	if (!is_null($reservierungsNr)){
     		$table = $this->getDbTable();
     		$where = $table->getAdapter()->quoteInto('nr = ?', $reservierungsNr);
     		$table->delete($where);
     	}
     }
}
